9d4447e3aedb287a6e4a8b363daed5cc7b08781a,compiler/frontend/src/org/jetbrains/jet/lang/resolve/MemberComparator.java,MemberComparator,compare,#DeclarationDescriptor#DeclarationDescriptor#,57

Before Change


            }
        }

        return c1.getValueParameters().size() - c2.getValueParameters().size();
    }
}

After Change


        }

        CallableDescriptor c1 = (CallableDescriptor)o1;
        CallableDescriptor c2 = (CallableDescriptor)o2;

        ReceiverParameterDescriptor c1ReceiverParameter = c1.getReceiverParameter();
        ReceiverParameterDescriptor c2ReceiverParameter = c2.getReceiverParameter();
        assert (c1ReceiverParameter != null) == (c2ReceiverParameter != null);
        if (c1ReceiverParameter != null) {
            String r1 = DescriptorRenderer.TEXT.renderType(c1ReceiverParameter.getType());
            String r2 = DescriptorRenderer.TEXT.renderType(c2ReceiverParameter.getType());
            int receiversCompareTo = r1.compareTo(r2);
            if (receiversCompareTo != 0) {
                return receiversCompareTo;
            }
        }

        List<ValueParameterDescriptor> c1ValueParameters = c1.getValueParameters();
        List<ValueParameterDescriptor> c2ValueParameters = c2.getValueParameters();
        for (int i = 0; i < Math.min(c1ValueParameters.size(), c2ValueParameters.size()); i++) {
            String p1 = DescriptorRenderer.TEXT.renderType(c1ValueParameters.get(i).getType());
            String p2 = DescriptorRenderer.TEXT.renderType(c2ValueParameters.get(i).getType());
            int parametersCompareTo = p1.compareTo(p2);
            if (parametersCompareTo != 0) {
                return parametersCompareTo;
            }
        }

        int valueParametersNumberCompareTo = c1ValueParameters.size() - c2ValueParameters.size();
        if (valueParametersNumberCompareTo != 0) {
            return valueParametersNumberCompareTo;
        }